import {exec} from 'child_process'
import path from 'path'
import fs from 'fs'

/**
 * 打开资源管理器
 * @param strPath
 */
export function openExplorer(strPath) {
    exec(`explorer.exe /select,"${strPath}"`)
}

/**
 * 同步删除文件夹
 * @param strPath
 */
export function removeSync(strPath) {
    /**
     * 判断给定的路径是否存在
     */
    if (fs.existsSync(strPath)) {
        if (fs.statSync(strPath).isFile()) {
            fs.unlinkSync(strPath)
        }
        else {
            let files = [];
            files = fs.readdirSync(strPath);
            files.forEach(function (file, index) {
                var curPath = path.join(strPath, file);
                removeSync(curPath)
            });
            fs.rmdirSync(strPath);
        }
    }
    else {
        throw new Error("当前路径不存在")
    }
}

/**
 * 获取文件路径的文件名
 * @param filePath
 */
export function getFileName(filePath) {
    let idx = filePath.lastIndexOf("\/")!=-1?filePath.lastIndexOf("\/"):filePath.lastIndexOf("\\")
    return filePath.substring(idx+1)
}

/**
 * 获取文件扩展名
 * @param fileName
 */
export function getFileExt(fileName) {
    let idx = fileName.lastIndexOf('.')
    if (idx == -1)
        return ''
    else
        return fileName.substring(idx + 1)
}

/**
 * 异步保存文件
 * @param path
 * @param content
 */
export function saveFile(path,content) {
    let promise =new Promise((resolve,reject)=>{
        fs.writeFile(path, content,'utf8',(err)=>{
            if (err){
                throw new Error(err)
            }
            resolve()
        })
    })
    return promise
}

/**
 * 添加文件
 * @param path
 */
export function addFileSync(path){
    if (fs.existsSync(path))
    {
        throw new Error("文件已存在，添加失败")
    }
    fs.writeFileSync(path,"")
}